/********************************************************************************
 * Project Name		[JavaEE_Web]
 * File Name     	[HttpProtocol.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package _notes.other;

/**
 * Http Protocal
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public final class HttpProtocol {

	public void httpProtocolDesc() {
		/**
		 * Http是一个基于请求/响应模式的, 无状态的协议 [request/response based, stateless
		 * protocol]
		 * 
		 * Http协议的版本<br/>
		 * 
		 * Http1.0 客户端与Web服务器建立连接后, 只能获得一个web资源<br/>
		 * Http1.1 客户端与Web服务器建立连接后, 在一个连接上可以获取多个Web资源<br/>
		 * 
		 * Http协议是一种无状态的协议<br/>
		 */
	}

	public void httpRequest() {
		/**
		 * Http请求<br/>
		 * 
		 * 一个完整的Http请求包括: 一个请求行, 若干消息头以及实体内容<br/>
		 * 
		 * Http请求行<br/>
		 * <code>GET /JavaEE_Web/html/login.html Http/1.1</code><br>
		 * 
		 * 请求方式包括: GET/POST/HEAD/OPTIONS/DELETE/TRACE/PUT<br/>
		 * 
		 * Http消息头<br/>
		 * Accept: 浏览器通过这个头告诉服务器, 它所支持的数据类型<br/>
		 * Accept-Charset: 浏览器通过这个头告诉服务器, 它支持哪种字符集<br/>
		 * Accept-Encoding: 浏览器通过这个头告诉服务器, 支持的压缩格式<br/>
		 * Accept-Language: 浏览器通过这个头告诉服务器, 它的语言环境<br/>
		 * Host: 浏览器通过这个头告诉服务器, 想访问哪台主机<br/>
		 * If-Modified-Since: 浏览器通过这个头告诉服务器, 缓存数据的时间<br/>
		 * Referer: 浏览器通过这个头告诉服务器, 客户机是哪个页面来的防盗链<br/>
		 * Connection: 浏览器通过这个头告诉服务器, 请求完后是断开链接还是何持链接<br/>
		 */
	}

	public void httpResponse() {
		/**
		 * Http响应<br/>
		 * 
		 * Http响应代表服务器向客户端回送的数据, 它包括一个状态行, 若干消息头以及实体内容<br/>
		 *
		 * Http状态行<br/>
		 * 404 客户端错误<br/>
		 * 500 服务器端错误<br/>
		 * 
		 * Http响应头<br/>
		 * Location: 服务器通过这个头, 来告诉浏览器跳到哪里<br/>
		 * Server: 服务器通过这个头, 告诉浏览器服务器的型号<br/>
		 * Content-Encoding: 服务器通过这个头, 告诉浏览器, 数据的压缩格式<br/>
		 * Content-Length: 服务器通过这个头, 告诉浏览器回送数据的长度<br/>
		 * Content-Language: 服务器通过这个头, 告诉浏览器语言环境<br/>
		 * Content-Type: 服务器通过这个头, 告诉浏览器回送数据的类型<br/>
		 * Refresh: 服务器通过这个头, 告诉浏览器定时刷新<br/>
		 * Content-Disposition: 服务器通过这个头, 告诉浏览器以下载方式打数据<br/>
		 * Transfer-Encoding: 服务器通过这个头, 告诉浏览器数据是以分块方式回送的<br/>
		 * Expires: -1 控制浏览器不要缓存<br/>
		 * Cache-Control: no-cache<br/>
		 * Pragma: no-cache<br/>
		 */
	}

	public void session() {
		/**
		 * 会话<br/>
		 * Web应用中的会话是指一个客户端浏览器与Web服务器之间连续发生的一系列请求和响应过程<br/>
		 * Web应用的会话状态是指Web服务器与浏览器在会话过程中产生的状态信息, 借助会话状态,
		 * Web服务器能够把属于同一会话中的一系列的请求和响应过程关联起来<br/>
		 */
	}
}
